iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
自我挑戰組

你努力一下啦,自己做一個前端專案啦系列 第 7

<你努力一下啦,自己做一個前端專案啦!07>:用個進度條看起來很專業

  • 分享至 

  • xImage
  •  

為什麼進度條很重要?

  • 即時回饋 (feedback loop):玩家需要清楚知道「自己做了什麼 → 有什麼結果」。
  • 沉浸感:血條掉下來、經驗條漸漸填滿,讓玩家有「活在世界裡」的感覺。
  • 目標感:進度條提供了「下一步就快完成了!」的心理暗示。

可以用一句話收尾:

進度條就是很直觀的 UI 語言。

怎麼讓進度條「動起來」?

a. 靜態版本

最簡單的進度條只需要一個容器 + 一個填充區域:

<div class="w-64 h-4 bg-gray-200 rounded-full overflow-hidden">
  <div class="h-full bg-blue-500" style="width: 70%"></div>
</div>

b. 動態版本 (Vue + CSS 變數)

用 Vue 綁定數值 → 寫入 --progress-width:

<template>
  <div class="w-64 h-4 bg-gray-200 rounded-full overflow-hidden">
    <div class="progress-health" :style="{ '--progress-width': progress + '%' }"></div>
  </div>
  <button @click="increase">+10%</button>
</template>

<script setup lang="ts">
import { ref } from 'vue'
const progress = ref(0)
const increase = () => {
  if (progress.value < 100) progress.value += 10
}
</script>

CSS 部分:

@keyframes progress {
  from { width: 0%; }
  to { width: var(--progress-width); }
}

.progress-health {
  background: var(--gradient-health);
  height: 100%;
  border-radius: 9999px;
  transition: width 0.3s ease-out;
  width: var(--progress-width);
}

怎麼做有感覺?

  • 平滑過渡:用 transition 或 animation,避免瞬間跳動。
  • 漸層背景:不同資源條有不同顏色,配合漸層更有質感。
  • 光暈效果:傳說級物品或爆擊時,進度條發光。
  • 動態加速/減速:用 easing function,讓填滿更自然。

進度條不只是「填滿」

  • 血量條 (HP):會掉下來,低於 20% 時改變顏色閃爍。
  • 魔力條 (MP):自動回復,玩家使用技能時快速消耗。
  • 經驗條 (EXP):持續累積,滿了就歸零並升級。
  • 探索條:點下「探索」後開始自動跑,完成後觸發事件。

結語

今天從「為什麼遊戲需要進度條」到「如何做出一個會動、有特效的進度條」都整理了一遍。
下一步,可以把進度條放到 遊戲 Layout 裡,開始讓「RPG 儀表板」真正跑起來。


上一篇
<你努力一下啦,自己做一個前端專案啦!06>:上班偷偷玩,用個"看起來"專業的主題顏色
下一篇
<你努力一下啦,自己做一個前端專案啦!08>:實作可以廣泛使用的 Progress Bar
系列文
你努力一下啦,自己做一個前端專案啦8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言